# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
import os
import sys
import re
import chardet

# 获取当前脚本所在目录的上两级目录（即 D:\code\mygit\xscript）
project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
# 将项目根目录添加到系统路径中
sys.path.append(project_root)

# 现在可以正常导入 base 目录下的模块
from base import re_base
from base import file_base

def replace_file_handler(content):
    # print(f"文件内容替换前:\n{content}\n{'-'*80}")
    newc = re_base.replace_dynamic_cast(content) # 替换智能指针
     # newc = re_base.replace_if_nonull(content) # 替换智能指针非空判断
    newc = re_base.replace_if_null(content) # 替换智能指针空判断

    # print(f"文件内容替换后:\n{newc}\n{'-'*80}")
    return newc
def re_file_handler(file_path, file_handler_data = None):
    file_base.replace_in_file(file_path, replace_file_handler)

# 测试示例
if __name__ == "__main__":
    print('fdfsds')
    # 定义目标目录和感兴趣的文件后缀
    # directory = r'D:\work\pc_client\cloud'
    directory = r'D:\work\pc_client\cloudSyncDisk'
    target_extensions = ['.cpp', '.h', '.cc', '.hh']  # 可以根据需要修改或添加更多后缀

    # 调用函数
    file_base.read_files_with_extension(directory, target_extensions, re_file_handler, None)
